package com.xinlan.imageeditlibrary;

import java.util.ArrayList;

import com.xinlan.imageeditlibrary.CallbackEventBiz.IExampleEvent;

public class CallbackEventBiz {
    private static CallbackEventBiz instance;

    private CallbackEventBiz() {}

    public static CallbackEventBiz getInstance() {
        if (instance == null) {
            instance = new CallbackEventBiz();
        }
        return instance;
    }

    /**
     *  回调接口
     */
    public interface IExampleEvent {
        void onExample(String data);
    }

    /**
     * 监听函数集合
     */
    ArrayList<IExampleEvent> mExampleListenerList = new ArrayList<CallbackEventBiz.IExampleEvent>();

    /**
     * 触发函数
     */
    public void example(String data) {
    	if(null!=mExampleListenerList){
    		for (int i = 0; i < mExampleListenerList.size(); i++) {
    			mExampleListenerList.get(i).onExample(data);
    		}
    	}
    }

    /**
     * 注册监听事件
     * @param callback 回调接口
     */
    public void registerExampleEventListener(IExampleEvent callback) {
        mExampleListenerList.add(callback);
    }

    /**
     * 反注册监听事件
     * @param callback 回调接口
     */
    public void unRegisterExampleEventListener(IExampleEvent callback) {
        mExampleListenerList.remove(callback);
    }
    
    /**
     * 清理所有监听事件
     */
    public void cleanRegisterExampleEventListener() {
        mExampleListenerList.clear();;
    }
    
}
